 //class继承
 function fc(name) {
     this.name = name;
 }
 fc.prototype.hell0 = function() {

     console.log('你好+' + this.name + '同学');
 }

 var g = new fc('帅哥')
 console.log(g);




 //如果用新的class关键字来编写Student，可以这样写：


 class student {
     constructor(name) {
         this.name = name;
     }

     hell0l() {

         console.log('你好+' + this.name + '+同学');
     }
 }

 var f = new student('帅哥')
 f.hell0l()




 //class继承
 //用class定义对象的另一个巨大的好处是继承更方便了。想一想我们从Student派生一个PrimaryStudent需要编写的代码量。
 //现在，原型继承的中间对象，原型对象的构造函数等等都不需要考虑了，直接通过extends来实现：
 class teacher extends student {

     constructor(name, age) {
         super(name);
         this.age = age;
     }

     sun() {

         console.log('我是' + this.name + '我今年' + this.age);
     }

 }

 var cpp = new teacher('图图', 8);
 cpp.sun();



 //  练习 请利用class重新定义Cat，并让它从已有的Animal继承，然后新增一个方法say()，返回字符串'Hello, xxx!'：

 'use strict';

 class Animal {
     constructor(name) {
         this.name = name;
     }
 }

 class Cat extends Animal {
     constructor(name) {
         super(name);
     }

     say = function() {
         return `Hello,${this.name}!`
     }
 }
 // class Cat ???

 // 测试:
 var kitty = new Cat('Kitty');
 var doraemon = new Cat('哆啦A梦');
 if ((new Cat('x') instanceof Animal) &&
     kitty &&
     kitty.name === 'Kitty' &&
     kitty.say &&
     typeof kitty.say === 'function' &&
     kitty.say() === 'Hello, Kitty!' &&
     kitty.say === doraemon.say) {
     console.log('测试通过!');
 } else {
     console.log('测试失败!');
 }



 //  浏览器对象
 // JavaScript可以获取浏览器提供的很多对象，并进行操作。

 // 1. window
 // window对象不但充当全局作用域，而且表示浏览器窗口。
 // window对象有innerWidth和innerHeight属性，可以获取浏览器窗口的内部宽度和高度。内部宽高是指除去菜单栏、工具栏、边框等占位元素后，用于显示网页的净宽高。


 console.log('window.innerWidth' + window.innerWidth + 'window.innerHeight' + window.innerHeight);



 //  2. navigator
 // navigator对象表示浏览器的信息，最常用的属性包括：

 // navigator.appName：浏览器名称；
 // navigator.appVersion：浏览器版本；
 // navigator.language：浏览器设置的语言；
 // navigator.platform：操作系统类型；
 // navigator.userAgent：浏览器设定的User-Agent字符串。
 'use strict';
 console.log('navigator' + navigator);
 console.log('appName = ' + navigator.appName);
 console.log('appVersion = ' + navigator.appVersion);
 console.log('language = ' + navigator.language);
 console.log('platform = ' + navigator.platform);
 console.log('userAgent = ' + navigator.userAgent);


 //  3. screen
 // screen对象表示屏幕的信息，常用的属性有：

 console.log('screenwidth   ' + screen.width + '   screenheight   ' + screen.height + '   screencolor   ' + screen.colorDepth);



 //  4. location
 // location对象表示当前页面的URL信息。例如，一个完整的URL：

 // http://www.example.com:8080/path/index.html?a=1&b=2#TOP
 // 可以用location.href获取。要获得URL各个部分的值，可以这么写：

 // location.protocol; // 'http'
 // location.host; // 'www.example.com'
 // location.port; // '8080'
 // location.pathname; // '/path/index.html'
 // location.search; // '?a=1&b=2'
 // location.hash; // 'TO




 // 5. document
 // document对象表示当前页面。由于HTML在浏览器中以DOM形式表示为树形结构，document对象就是整个DOM树的根节点。

 // document的title属性是从HTML文档中的<title>xxx</title>读取的，但是可以动态改变

 var tt = document.getElementById('dt')
 console.log(tt);
 var t = document.getElementsByTagName('drink-menu')
 console.log(t);
 var i, s;
 s = '提供的饮料有:';
 for (i = 0; i < t.length; i++) {
     s = s + t[i].innerHTML + ',';

 }
 console.log(s);


 //  document对象还有一个cookie属性，可以获取当前页面的Cookie